package com.zxc.service;


import com.zxc.model.OnlineExam;
import com.zxc.model.StudentExamDetail;

import java.util.List;
import java.util.Map;

/**
 * 试卷表(OnlineExam)表服务接口
 *
 * @author makejava
 * @since 2019-05-01 11:39:00
 */
public interface OnlineExamService {

    /**
     * 通过ID查询单条数据
     *
     * @param OnlineExamId 主键
     * @return 实例对象
     */
    OnlineExam queryById(Integer OnlineExamId);

    /**
     * 新增数据
     *
     * @param OnlineExam 实例对象
     * @return 实例对象
     */
    int insert(OnlineExam OnlineExam);

    /**
     * 修改数据
     *
     * @param OnlineExam 实例对象
     * @return 实例对象
     */
    int update(OnlineExam OnlineExam);

    int updateScore(OnlineExam OnlineExam);

    /**
     * 通过主键删除数据
     *
     * @param OnlineExamId 主键
     * @return 是否成功
     */
    boolean deleteById(Integer OnlineExamId);

    int deleteByIds(String ids);

    /**
     * 批量获取OnlineExam
     *
     * @param OnlineExam OnlineExam条件
     * @return
     */
    List<OnlineExam> findOnlineExamList(OnlineExam OnlineExam);

    /**
     * 根据OnlineExamId获取学生的考试的试卷信息
     *
     * @param id
     * @param OnlineExamId
     * @return
     */
    StudentExamDetail getOnlineExamForStudentByOnlineExamId(Integer examId, Integer userId);

    List<OnlineExam> findOnlineExamListForStu(OnlineExam OnlineExam, Integer id);

    /**
     * 查找需要review的试卷
     *
     * @param OnlineExam
     * @return
     */
    List<OnlineExam> findOnlineExamListToReview(OnlineExam OnlineExam);

    /**
     * 获取OnlineExam的详细信息，方便老师review
     *
     * @param OnlineExamId
     * @param stuId
     * @return
     */
    StudentExamDetail findOnlineExamDetailToReview(Integer OnlineExamId, Integer stuId);

    /**
     * 获取科目列表
     * @return
     */
    List<Map> querySubject();
}